pycharm ssh远程解释器连接docker容器环境变量缺失 |
您所在的位置:网站首页 › pycharm 数据库 数据显示不全 › pycharm ssh远程解释器连接docker容器环境变量缺失 |
背景介绍
利用pycharm ssh interpreter 运行部署在容器中的python文件,发现无法调用torch的gpu版本。 但是使用docker exec的方式进入容器不存在该问题。 通过在python的调试模式下执行os.environ,以及在容器中执行ENV,对比发现pycharm通过ssh远程登录执行程序的环境变量与docker exec进入容器的环境变量不同。 解决方案首先参考了:https://blog.csdn.net/thlzjfefe/article/details/104777283 在/etc/profile中添加了export $(cat /proc/1/environ |tr '\0' '\n' | xargs) 发现通过终端直接ssh登录容器,在shell中执行程序时可以获得正确的环境变量。但是: 使用pycharm ssh interpreter运行程序仍然无法获得/etc/profile中的环境变量。 经过网上调研,感谢博客https://blog.csdn.net/vivianXuejun/article/details/80557287 对bash的四种模式:interactive + login shell、non-interactive + login shell、interactive + non-login shell、non-interactive + non-login shell进行了详细的解释。 使用pycharm ssh interpreter直接远程运行程序属于non-interactive + non-login shell模式。程序执行前会根据BASH_ENV指定的配置文件进行加载。 通过echo BASH_ENV$,得到配置文件路径为: /etc/bash.bashrc将export $(cat /proc/1/environ |tr '\0' '\n' | xargs)加入/etc/bash.bashrc中,问题成功解决。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |